package com.example.blog.Service;

import com.example.blog.entity.User;
import com.example.blog.repository.UserRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDateTime;
import java.util.Optional;

@Service
public class UserService {

    @Autowired
    private UserRepository userRepository;

    @Transactional
    public int register(String username, String password, String gender, int age) {
        User existingUser = userRepository.findByname(username);
        // 如果用户名已存在，返回0（注册失败）
        Optional<User> existingUserOptional = Optional.ofNullable(userRepository.findByname(username));
        if (existingUserOptional.isPresent()) {
            return 0;
        }
        User user = new User();
        user.setName(username); // 正确设置用户名
        user.setPassword(password);
        user.setGender(gender);
        user.setAge(age);
        user.setCreatetime(LocalDateTime.now()); // 设置当前时间为注册时间
        System.out.println(user.getName());
        System.out.println(user.getPassword());
        try {
            userRepository.save(user);
            System.out.println(user);
            return 1; // 注册成功
        } catch (Exception e) {
            // 处理异常，例如用户名已存在s
            e.printStackTrace(); // 打印异常堆栈跟踪以便于调试
            return 0; // 注册失败
        }
    }

    public int login(String username, String password) {
        // 从数据库中查找用户
        User user = userRepository.findByname(username);

        // 检查用户是否存在
        if (user.getName()!=null) {

            System.out.println(user.getName());
            System.out.println(user.getPassword());
            // 直接比较明文密码
            if (user.getPassword().equals(password)) {
                // 密码匹配，登录成功
                return 1;
            } else {
                // 密码不匹配
                return -1;
            }
        } else {
            // 用户不存在
            return 0;
        }
    }


}